home *** CD-ROM | disk | FTP | other *** search
- /* This procedure creates one app object */
- PROC create_app()
-
- DEF app, wi_Characters, stR_name, cy_sex, ra_Race, ra_Class, ch_cloak
- DEF ch_shield, ch_gloves, ch_helmet, sl_experience, sl_strength
- DEF sl_dexterity, sl_condition, sl_intelligence
-
- DEF tmp_object : PTR TO obj_app
-
- IF ( tmp_object := New( SIZEOF obj_app ) ) = NIL THEN RETURN NIL
-
- tmp_object.stR_CY_sex := [ 'female', 'male', NIL ]
- tmp_object.stR_GR_Register := [ 'Race', 'Class', 'Armor', 'Level', NIL ]
- tmp_object.stR_RA_Race := [ 'Human', 'Elf', 'Dwarf', 'Hobbit', 'Gnome', NIL ]
- tmp_object.stR_RA_Class := [ 'Warrior', 'Rogue', 'Bard', 'Monk', 'Magician', 'Archmage', NIL ]
-
- app := ApplicationObject,
- MUIA_Application_Author, 'Stefan Stuntz',
- MUIA_Application_Base, 'CHARACTER',
- MUIA_Application_Title, 'Characters',
- MUIA_Application_Version, '$VER: Characters 1.1 (xx.xx.xx)',
- MUIA_Application_Copyright, 'Stefan Stuntz',
- MUIA_Application_Description, 'Just an example !!',
- MUIA_HelpFile, 'character.guide',
- SubWindow, wi_Characters := WindowObject,
- MUIA_Window_Title, 'Characters',
- MUIA_HelpNode, 'WI_Characters',
- MUIA_Window_ID, MAKE_ID( "0", "W", "I", "N" ),
- WindowContents, GroupObject,
- Child, GroupObject,
- MUIA_HelpNode, 'GR_Global',
- MUIA_Group_Columns, 2,
- Child, Label( 'Name' ),
- Child, stR_name := StringObject,
- StringFrame,
- MUIA_HelpNode, 'STR_name',
- MUIA_String_MaxLen, 80,
- MUIA_String_Format, 0,
- End,
- Child, Label( 'Sex' ),
- Child, cy_sex := CycleObject,
- MUIA_HelpNode, 'CY_sex',
- MUIA_Cycle_Entries, tmp_object.stR_CY_sex,
- End,
- End,
- Child, RegisterGroup( tmp_object.stR_GR_Register ),
- Child, ra_Race := RadioObject,
- GroupFrameT( 'Race' ),
- MUIA_Radio_Entries, tmp_object.stR_RA_Race,
- End,
- Child, ra_Class := RadioObject,
- GroupFrameT( 'Class' ),
- MUIA_Radio_Entries, tmp_object.stR_RA_Class,
- End,
- Child, GroupObject,
- GroupFrameT( 'Armor' ),
- MUIA_Group_Columns, 2,
- Child, Label( 'Cloak' ),
- Child, ch_cloak := CheckMark( FALSE ),
- Child, Label( 'Shield' ),
- Child, ch_shield := CheckMark( FALSE ),
- Child, Label( 'Gloves' ),
- Child, ch_gloves := CheckMark( FALSE ),
- Child, Label( 'Helmet' ),
- Child, ch_helmet := CheckMark( FALSE ),
- End,
- Child, GroupObject,
- GroupFrameT( 'Level' ),
- MUIA_Group_Columns, 2,
- Child, Label( 'Experience' ),
- Child, sl_experience := SliderObject,
- MUIA_Slider_Min, 0,
- MUIA_Slider_Max, 100,
- MUIA_Slider_Quiet, FALSE,
- MUIA_Slider_Level, 3,
- MUIA_Slider_Reverse, FALSE,
- End,
- Child, Label( 'Strength' ),
- Child, sl_strength := SliderObject,
- MUIA_Slider_Min, 0,
- MUIA_Slider_Max, 100,
- MUIA_Slider_Quiet, FALSE,
- MUIA_Slider_Level, 10,
- MUIA_Slider_Reverse, FALSE,
- End,
- Child, Label( 'Dexterity' ),
- Child, sl_dexterity := SliderObject,
- MUIA_Slider_Min, 0,
- MUIA_Slider_Max, 100,
- MUIA_Slider_Quiet, FALSE,
- MUIA_Slider_Level, 24,
- MUIA_Slider_Reverse, FALSE,
- End,
- Child, Label( 'Condition' ),
- Child, sl_condition := SliderObject,
- MUIA_Slider_Min, 0,
- MUIA_Slider_Max, 100,
- MUIA_Slider_Quiet, FALSE,
- MUIA_Slider_Level, 39,
- MUIA_Slider_Reverse, FALSE,
- End,
- Child, Label( 'Intelligence' ),
- Child, sl_intelligence := SliderObject,
- MUIA_Slider_Min, 0,
- MUIA_Slider_Max, 100,
- MUIA_Slider_Quiet, FALSE,
- MUIA_Slider_Level, 74,
- MUIA_Slider_Reverse, FALSE,
- End,
- End,
- End,
- End,
- End,
- End
-
- tmp_object.app := app
- tmp_object.wi_Characters := wi_Characters
- tmp_object.stR_name := stR_name
- tmp_object.cy_sex := cy_sex
- tmp_object.ra_Race := ra_Race
- tmp_object.ra_Class := ra_Class
- tmp_object.ch_cloak := ch_cloak
- tmp_object.ch_shield := ch_shield
- tmp_object.ch_gloves := ch_gloves
- tmp_object.ch_helmet := ch_helmet
- tmp_object.sl_experience := sl_experience
- tmp_object.sl_strength := sl_strength
- tmp_object.sl_dexterity := sl_dexterity
- tmp_object.sl_condition := sl_condition
- tmp_object.sl_intelligence := sl_intelligence
-
- IF tmp_object.app = NIL
- Dispose( tmp_object )
- tmp_object := NIL
- ENDIF
-
- ENDPROC tmp_object
-
-
- /* This procedure deletes one app object */
- PROC dispose_app( tmp_object : PTR TO obj_app )
-
- Mui_DisposeObject( tmp_object.app )
- Dispose( tmp_object )
-
- ENDPROC
-
-
- /* DoMethod() function */
- PROC doMethod( obj:PTR TO object, msg:PTR TO msg )
-
- DEF h:PTR TO hook, o:PTR TO object, dispatcher
-
- IF obj
- o := obj-SIZEOF object /* instance data is to negative offset */
- h := o.class
- dispatcher := h.entry /* get dispatcher from hook in iclass */
- MOVEA.L h,A0
- MOVEA.L msg,A1
- MOVEA.L obj,A2 /* probably should use CallHookPkt, but the */
- MOVEA.L dispatcher,A3 /* original code (DoMethodA()) doesn't. */
- JSR (A3) /* call classDispatcher() */
- MOVE.L D0,o
- RETURN o
- ENDIF
-
- ENDPROC NIL
-